package com.kantboot.business.talent.util;

import com.kantboot.user.account.domain.entity.UserAccount;
import com.kantboot.user.account.util.UserAccountUtil;
import org.springframework.stereotype.Component;

/**
 * 等级条件校验工具类
 */
@Component
public class LevelConditionCheckUtil {

    /**
     * 是否满足最小年龄
     */
    public boolean isMeetMinAge(UserAccount userAccount, Integer minAge) {
        Integer age = UserAccountUtil.getAge(userAccount);
        if (age == null) {
            return false;
        }
        return age >= minAge;
    }

    /**
     * 是否满足最大年龄
     */
    public boolean isMeetMaxAge(UserAccount userAccount, Integer maxAge) {
        Integer age = UserAccountUtil.getAge(userAccount);
        if (age == null) {
            return false;
        }
        return age <= maxAge;
    }


    /**
     * 是否满足政府津贴等级数值
     * @param userAccount 用户账号
     * @param governmentAllowanceLevelNumber 政府津贴等级数值
     */
    public boolean isMeetMinGovernmentAllowanceLevel(UserAccount userAccount, Integer governmentAllowanceLevelNumber) {
        Integer governmentAllowanceLevel = userAccount.getGovernmentAllowanceLevel();
        if (governmentAllowanceLevel == null) {
            return false;
        }
        return governmentAllowanceLevel >= governmentAllowanceLevelNumber;
    }

    /**
     * 是否满足技能等级数值
     * @param userAccount 用户账号
     * @param skillLevelNumber 技能等级数值
     */
    public boolean isMeetMinSkillLevel(UserAccount userAccount, Integer skillLevelNumber) {
//        Integer currentSkillLevel = userAccount.getCurrentSkillLevel();
//        if (currentSkillLevel == null) {
//            return false;
//        }
//        return currentSkillLevel >= skillLevelNumber;
        return false;
    }

//    /**
//     * 是否满足从事本工作的最低年限
//     * @param userAccount 用户账号
//     * @param seriesCode 工作系列编码
//     * @param workYears 从事本工作的最低年限
//     */
//    public boolean isMeetWorkYears(UserAccount userAccount,
//                                   String seriesCode,
//                                   Integer workYears) {
//        List<BusTalentSeriesWorkExperienceOfUserAccount> seriesWorkExperiences = userAccount.getSeriesWorkExperiences();
//        if (seriesWorkExperiences == null) {
//            return false;
//        }
//        BusTalentSeriesWorkExperienceOfUserAccount seriesWorkExperience = new BusTalentSeriesWorkExperienceOfUserAccount();
//        for (BusTalentSeriesWorkExperienceOfUserAccount experience : seriesWorkExperiences) {
//            if (seriesCode.equals(experience.getSeriesCode())) {
//                seriesWorkExperience = experience;
//                break;
//            }
//        }
//        if (seriesWorkExperience == null) {
//            return false;
//        }
//        // 获取工作年限
//        Date gmtStart = seriesWorkExperience.getGmtStart();
//        if (gmtStart == null) {
//            return false;
//        }
//        // 是否当前在职
//        Boolean isCurrent = seriesWorkExperience.getIsCurrent();
//        Date gmtEnd = seriesWorkExperience.getGmtEnd();
//        if (isCurrent != null && isCurrent) {
//            gmtEnd = new Date();
//        }
//        if (gmtEnd == null) {
//            return false;
//        }
//        // start:计算工作年限
//        // 获取开始时间的年份
//        int startYear = gmtStart.getYear();
//        // 获取开始时间的月份
//        int startMonth = gmtStart.getMonth();
//        // 获取开始时间的日
//        int startDay = gmtStart.getDate();
//        // 获取结束时间的年份
//        int endYear = gmtEnd.getYear();
//        // 获取结束时间的月份
//        int endMonth = gmtEnd.getMonth();
//        // 获取结束时间的日
//        int endDay = gmtEnd.getDate();
//
//        // 计算工作年限
//        int workYearsResult = endYear - startYear;
//        // 如果结束时间的月份小于开始时间的月份，工作年限减1
//        if (endMonth < startMonth) {
//            workYearsResult--;
//        }
//        // 如果结束时间的月份等于开始时间的月份，且结束时间的日小于开始时间的日，工作年限减1
//        if (endMonth == startMonth && endDay < startDay) {
//            workYearsResult--;
//        }
//        // end:计算工作年限
//        return workYearsResult >= workYears;
//    }



}
